🧩 从源码到镜像:Yocto 完整项目实战
30 章 · 手把手构建嵌入式 Linux 发行版
📚 目录
30/30
01
Yocto 初探
什么是Yocto?核心概念:Poky、BitBake、Metadata
02
环境搭建
Ubuntu 22.04 依赖包、Git 与 Repo 配置
03
获取源码
克隆Poky,理解 meta、meta-poky、meta-yocto-bsp
04
首次构建
oe-init-build-env,bblayers.conf,bitbake core-image-minimal
05
理解 BitBake
基础语法、任务与依赖、.bb / .bbclass 解析
06
Recipe 编写入门
Hello World Recipe,SRC_URI、LICENSE、do_compile
07
变量与继承
PN、PV、PR、WORKDIR、inherit / include 机制
08
添加软件包
IMAGE_INSTALL 添加 tree、htop 等
09
创建自定义层
bitbake-layers 创建 meta-mylayer
10
镜像定制
自定义镜像 Recipe,继承 core-image
11
内核配置
linux-yocto,menuconfig,配置片段
12
设备树
Device Tree 作用,添加/修改 dts
13
U-Boot 配置
U-Boot Recipe,启动参数,自定义补丁
14
文件系统定制
根文件系统、启动脚本、Systemd 服务
15
补丁管理
quilt / devtool 管理源码补丁
16
devtool 实战
modify / build / finish 简化开发
17
SDK 生成
meta-toolchain / populate_sdk 交叉工具链
18
外部源码集成
Git 仓库 / 本地源码,SRC_URI git://
19
PACKAGECONFIG 详解
控制特性,条件编译
20
构建提速
sstate-cache、并行编译、PREMIRRORS
21
调试构建失败
tmp/work 日志,bitbake -v -D
22
多机器配置
qemu / beaglebone / raspberrypi
23
Yocto 与 Docker
容器化构建环境,环境一致性
24
版本管理
Dunfell / Kirkstone / Langdale 迁移要点
25
安全加固
cve-check,PIE,STACK_PROTECTOR
26
测试与验证
ptest,testimage 自动化测试
27
License 管理
LICENSE_FLAGS,商业/非商业,清单生成
28
扩展 BBclass
自定义 bbclass,封装通用构建逻辑
29
性能优化
镜像大小瘦身,ROOTFS_POSTPROCESS_COMMAND
30
项目总结
完整流程回顾,需求分析,最佳实践